<?php

/**
 * Application level Controller
 *
 * This file is application-wide controller file. You can put all
 * application-wide controller-related methods here.
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Controller
 * @since         CakePHP(tm) v 0.2.9
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */
App::uses('Controller', 'Controller');

/**
 * Application Controller
 *
 * Add your application-wide methods in the class below, your controllers
 * will inherit them.
 *
 * @package		app.Controller
 * @link		http://book.cakephp.org/2.0/en/controllers.html#the-app-controller
 */
class AppController extends Controller {

    public $helpers = array('Html', 'Form', 'Js' => array('Jquery'));
    public $components = array('RequestHandler'
       , 'Session',
        'Auth' => array(
            'loginRedirect' => array('controller' => 'pages', 'action' => 'display'),
            'logoutRedirect' => array('controller' => 'pages', 'action' => 'display')
      
         )
         
    );

    function beforeFilter() {
/*
          // 1. Obtenemos el nombre de la acción que el usuario escribe en el URL.
          $url = $this->action;
          
          $comparacion = false;
          // 2. Construimos un array con todos las acciones que existen en este controlador.
          $metodos = $this->methods;
          foreach ($metodos as $p) {
          if ($p == $url) {
          $comparacion = true;
          }
          }
          if (!$comparacion) {
          $this->redirect(array('controller' => 'pages', 'action' => 'display'));
          }

 */
    }


    public function afterFilter() {
        parent::afterFilter();

        if (empty($this->request->query['callback'])) {
            return;
        }


        // jsonp response
        App::uses('Sanitize', 'Utility');
        $callbackFuncName = Sanitize::clean($this->request->query['callback']);
        $out = $this->response->body();
        $out = sprintf("%s(%s)", $callbackFuncName, $out);
        $this->response->body($out);
    }

}

